#!/bin/bash
set -e


echo "请输入IP范围（格式:192.168.10.10-20）："
  read -r ip_range

  # 分割输入的IP范围，获取起始IP和结束IP
  start_ip=$(echo "$ip_range" | cut -d'-' -f1)
  end_ip=$(echo "$ip_range" | cut -d'-' -f2)

  # 提取起始IP的最后一个字段
  base_ip=$(echo "$start_ip" | awk -F'.' '{print $1"."$2"."$3"."}')

  # 将起始IP和结束IP的最后一个字段转换为数字
  start_num=$(echo "$start_ip" | awk -F'.' '{print $4}')
  end_num=$end_ip

  # 非空检查
  if [[ -z "$start_num" || -z "$end_num" ]]; then
    echo "起始IP或结束IP的最后一个字段为空，请重新输入正确的IP范围。"
    exit 1
  fi

  # 循环生成IP数组
  for ((i=start_num; i <= end_num; i++))
  do
  # 检查是否存在重复IP
    if [[ -f "servers-$base_ip.txt" && $(grep -c "$ip" "servers-$base_ip.txt") -gt 0 ]]; then
      echo "该IP已存在，跳过: $ip"
      continue
    fi
    ip="${base_ip}${i}"
    echo "$ip" >> "servers-$base_ip.txt"
    ip_array+=("$ip")
  done